package xin.mydreams.mybill.util;

import org.apache.shiro.SecurityUtils;
import org.apache.shiro.crypto.hash.SimpleHash;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.ByteSource;

import xin.mydreams.mybill.widget.user.entity.User;

/**
 * 用户工具类
 * 
 * @Type UserUtil.java
 * @Desc
 * @mail guzehao@mydreams.xin
 * @author 谷泽昊
 * @date 2019年1月29日 下午9:24:32
 * @version
 */
public class UserUtil {
	/**
	 * 超级管理员
	 */
	public static final String SUPER_ADMIN = "SUPER_ADMIN";

	/**
	 * 普通用户
	 */
	public static final String ROLE_ORDINARY = "ROLE_ORDINARY";

	/**
	 * 登录用户
	 */
	public static final String SESSION_LOGIN_USER = "SESSION_LOGIN_USER_";

	/**
	 * 获取当前登录用户
	 * 
	 * @date Created at 2019年1月29日 下午9:24:47
	 * @mail guzehao@mydreams.xin
	 * @author 谷泽昊
	 * @return
	 */
	public static User getUser() {
		try {
			Subject currentUser = SecurityUtils.getSubject();
			if (currentUser.isAuthenticated()) {

				Object principal = currentUser.getPrincipal();
				if (principal instanceof User) {
					return (User) principal;
				}
			}
		} catch (Exception e) {
//			log.error("获取用户失败：" , e);
		}
		return null;
	}

	/**
	 * 密码加密
	 * 
	 * @date Created at 2017年11月17日 下午7:26:10
	 * @Author 谷泽昊
	 * @param password 密码
	 * @param salt     盐值
	 * @return
	 */
	public static String getEncryptPsw(String password, String salt) {
		return new SimpleHash("md5", password, ByteSource.Util.bytes(salt), 2).toHex();
	}
}
